﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include <string>
using namespace std;

class Printer
{
private:
	Printer() { m_Count = 0; }
	Printer(const Printer& p);

public:
	static Printer* getInstance()
	{
		return singlePrinter;
	}
	void printText(string text)
	{
		cout << text << endl;
		m_Count++;
		cout << "打印机使用的次数为：" << m_Count << endl;
	}

private:
	static Printer* singlePrinter;
	int m_Count;
};
Printer* Printer::singlePrinter = new Printer;
void testPrinter()
{
	//1.拿到打印机；
	Printer* printer = Printer::getInstance();
	printer->printText("离职报告");//打印机使用的次数为：1
	printer->printText("入职报告");//打印机使用的次数为：2
	printer->printText("加薪申请");//打印机使用的次数为：3
	printer->printText("升级申请");//打印机使用的次数为：4
	printer->printText("退休申请");//打印机使用的次数为：5

	/*
	离职报告
	打印机使用的次数为：1
	入职报告
	打印机使用的次数为：2
	加薪申请
	打印机使用的次数为：3
	升级申请
	打印机使用的次数为：4
	退休申请
	打印机使用的次数为：5
	*/
}

//main268：单例模式案例使用打印机
int main268()
{
	testPrinter();

	system("pause");
	return EXIT_SUCCESS;
}